package com.chx.service;

import com.chx.dto.SaleOrderDto;
import com.chx.dto.SaleOrderPageQueryDto;
import com.chx.dto.StockOutOrderDto;
import com.chx.result.PageResult;
import com.chx.vo.SaleOrderVo;

/**
 * @Author cp-月入过万
 * @Date 2025/5/30
 */
public interface SaleOrderService {
    /**
     * 新增销售订单
     * @param saleOrderDto
     */
    void save(SaleOrderDto saleOrderDto);

    /**
     * 修改销售订单
     * @param saleOrderDto
     */
    void update(SaleOrderDto saleOrderDto);

    /**
     * 取消销售订单
     * @param id
     */
    void cancel(Long id);

    /**
     * 根据id获取销售订单详情
     * @param id
     * @return
     */
    SaleOrderVo getById(Long id);

    /**
     * 分页查询销售订单
     * @param saleOrderPageQueryDto
     * @return
     */
    PageResult page(SaleOrderPageQueryDto saleOrderPageQueryDto);

    /**
     * 审核销售订单
     * @param id
     */
    void updateStatus(Long id);

    /**
     * 提交销售订单
     */
    void commit(StockOutOrderDto stockOutOrderDto);

    /**
     * 销售订单发货
     * @param id
     */
    void delivery(Long id);
}
